package grepy_homework.src.Top1;

import java.util.Scanner;
public class test {
    private static Student[] nums = new Student[3];
    private static int tot=0;
    public static void Show(){
        System.out.println(String.format("%-13s %-13s %-13s","姓名", "学号", "年龄"));
        for (int i = 0; i < tot; i +=1){
            System.out.println(nums[i]);
        }
    }
//    要求1：添加的时候需要进行学号的唯一性判断。
    public static boolean Is_Only(Student s){
        try{
            int i = 0;
            for (;;){
                if (s.id.equals(nums[i].id)){
                    return false;
                };
                i++;
            }
        }catch(Exception e){
            return true;
        }
    }
//    要求2：添加完毕之后，遍历所有学生信息。
    public static void Add(Student s){
        if (Is_Only(s)){
            Student[] new_n = new Student[tot+1];
            for (int i = 0; i <= tot-1; i++){
                new_n[i] = nums[i];
            }
            nums = new_n;
            new_n[tot++] = s;
        }else{
            System.out.println("学生已在其中");
        }
        Show();
    }
//    要求3：通过id删除学生信息
//    如果存在，则删除，如果不存在，则提示删除失败。
//    要求4：删除完毕之后，遍历所有学生信息。
    public static void Delete_S(String s){
        int n = 0, x = 0;
        Student[] nums1 = new Student[tot];
        while (tot > n){
            if (s.equals(nums[n].id)){
                n += 1;
            }
            if (tot > n){
                nums1[x] = nums[n];
            }
            n++;
            x++;
        }
        if (n == x){
            System.out.println("删除失败");
            Show();
            return;
        }
        tot--;
        nums = nums1;
        Show();
    }
//    要求5：id为2的学生，年龄+1岁
    public static void Age_Updata(){
        Scanner r = new Scanner(System.in);
        System.out.print("请输入他/她的id：");
        String id = r.nextLine();
        int i = 0;
        if (!id.equals(nums[0].id)){
            for (i = 0; i < tot; i++){
                if (id.equals(nums[i].id)){
                    break;
                }
            }
            if (i == tot){
                System.out.println("没有这个学生");
                return;
            }
        }
        System.out.print("怎么改(例: +n 或 -n 或 n): ");
        String n = r.nextLine();
        System.out.println(String.format("     %-13s %-13s %-13s","姓名", "学号", "年龄"));
        System.out.println(String.format("原来: %s", nums[i]));
        switch(n.substring(0, 1)){
            case "-":
                nums[i].age -= Integer.parseInt(n.substring(1));
                break;
            case "+":
                nums[i].age += Integer.parseInt(n.substring(1));
                break;
            default:
                nums[i].age = Integer.parseInt(n);
        }
        System.out.println(String.format("现在: %s", nums[i]));


    }
    public static void main(String [] args){
        nums[0] = new Student("one", "1", 12);
        nums[1] = new Student("two", "2", 12);
        nums[2] = new Student("three", "3", 12);
        tot = 3;
         //客户端交互系统
        String n = " ";
        System.out.println("操作指南：show add delete exit age_updata");
        Scanner r = new Scanner(System.in);
        while (!n.equals("exit")){
            switch (n){
                case "delete":
                    System.out.print("请输入你要删除的id：");
                    String id = r.nextLine();
                    Delete_S(id);
                    break;
                case "add":
                    System.out.print("请以 ’姓名 学号 年龄‘ 的方式输入:");
                    String[] x = r.nextLine().split(" ", 3);
                    Student new_s = new Student(x[0], x[1], Integer.parseInt(x[2]));
                    Add(new_s);
                    break;
                case "show":
                    Show();
                    break;
                case "age_updata":
                    Age_Updata();
                    break;
                default:
                    break;
            }
            System.out.print("你输入：");
            n = r.nextLine();
        }
        System.out.println("good bye");
    }
}
